package com.pcbly.web.components.utils;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.FileOutputStream;

import javax.swing.ImageIcon;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;

public class WaterMarkUtils {
	public boolean createMark(String filePath, String markContent,
			Color markContentColor, float qualNum, String watermark) {
		ImageIcon imgIcon = new ImageIcon(filePath);
		Image theImg = imgIcon.getImage();
		int width = theImg.getWidth(null);
		int height = theImg.getHeight(null);
		// ImageIcon waterIcon=new ImageIcon(watermark);
		// Image waterImg =waterIcon.getImage();
		BufferedImage bimage = new BufferedImage(width, height,
				BufferedImage.TYPE_INT_RGB);
		Graphics2D g = bimage.createGraphics();
		g.setColor(markContentColor);
		g.setBackground(Color.white);
		g.drawImage(theImg, 0, 0, null);
		// g.drawImage(waterImg, width*2, height, null );
		g.drawString(markContent, width - 100, height - 30); // 添加水印的文字和设置水印文字出现的内容
		g.dispose();
		try {
			FileOutputStream out = new FileOutputStream(filePath);
			JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
			JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bimage);
			param.setQuality(qualNum, true);
			encoder.encode(bimage, param);
			out.close();
		} catch (Exception e) {
			return false;
		}
		return true;
	}

	public static void main(String arg[]) {
		WaterMarkUtils wk = new WaterMarkUtils();
		if (wk.createMark("D:\1.jpg", "Welcome!", Color.WHITE, 70f, "")) {
			System.out.println("制作成功");
		} else {
			System.out.println("失败了！");
		}
	}

}
